package com.springboot.frame.excel.handler;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Row;

/**
 * @author madman
 */
public abstract class AbstractBaseCellHandler<T> implements CellHandler<T> {

  /**
   * 处理导出Excel
   *
   * @param row 表行对象
   * @param columnIndex 列索引
   * @param data 导入数据
   * @param cellStyle 单元格样式
   */
  @Override
  public void write(Row row, int columnIndex, T data, CellStyle cellStyle) {
    Cell cell = row.createCell(columnIndex);
    cell.setCellStyle(cellStyle);
    doWrite(cell, data);
  }

  /**
   * Cell设值
   *
   * @param cell Cell对象
   * @param data 数据
   */
  public abstract void doWrite(Cell cell, T data);

}
